Learning Objectives

After completing this lesson, you’ll be able to:

Video

AttributeFilter

The AttributeFilter transformer directs features by values in a chosen attribute. It is not a binary test (Yes/No) but a way to separate many values for a single attribute, for example:

AttributeFilter example

If you were using seven Tester transformers to separate this data, you could save space on the workspace canvas and replace that setup with just a single AttributeFilter.

Note

Use the Import... button to quickly add attributes from existing datasets.

Note

In almost every scenario where you are using multiple Tester transformers, it's possible to use a different filtering transformer to achieve the same result but using much less space on the canvas.

The AttributeFilter also works with numeric values; however, its only "operator" is to find equivalency (=), so you would rarely use it for arithmetical tests. In that scenario, the better solution is the AttributeRangeFilter.

AttributeRangeFilter

The AttributeRangeFilter carries out the same operation as the AttributeFilter, except that it can handle a range of numeric values instead of just a simple one-to-one match.

For example, we might want to separate data based on a range of snowfall values, like so:

AttributeRangerFilter example

Notice that the AttributeRangeFilter parameters dialog has a Generate button to generate ranges automatically from a set of user-defined extents.

GeometryFilter

The GeometryFilter directs features on the basis of geometry type; for example, point, line, area, ellipse:

GeometryFilter example

It can even filter data based on null geometry (tabular records):

GeometryFilter example with null geometry

The GeometryFilter is useful for:

Which Transformer Should I Use?

If the Tester, TestFilter, and AttributeFilter all filter features on the basis of an attribute condition, then what’s the difference? When would I use each?

The best solution is to check out these two articles on the Safe Software blog:

You can also refer to this table:
  Single Test Multiple Tests Test Type Operators Attributes
  Single
Clause
Multi
Clause
Single
Clause
Multi
Clause
String Numeric    
Tester Y Y Y Y 16 Multiple
TestFilter Y Y Y Y Y Y 16 Multiple
AttributeFilter Y Y Y 1 1
AttributeRangeFilter Y Y Y 6 1